Skip to content

Get tenant app versions by app ID
Stable

Request

Retrieves a paginated list of every version uploaded for a specific tenant app.

Returns each version's TenantAppVersionResponse record. The legacy_format parameter controls whether version identification is returned as the legacy build_number or the newer version_code.

About Get Tenant App Versions

⚠️ iOS and Windows only. Every time a new build of a tenant app is uploaded, it becomes a new version under the same appId. This endpoint lists all of them, which is the standard way to find the version_id needed to install a specific build or to reference in a blueprint.

Key Fields / Query Parameters

legacy_format — when true (the default), returns build_number for backward compatibility; set to false to receive version_code instead

app_name — filters by app name

Common Use Cases

Finding the latest version of an app before assigning it to a blueprint

Auditing the upload history of a tenant app

Best Practices

Set legacy_format to false in new integrations to work with version_code directly, rather than relying on the legacy build_number field

Sort or filter results to confirm you're referencing the intended version before using it in a blueprint or install command

Workflow

Call this endpoint with the appId

Identify the versionId of the version you need

Call GET /v2/tenant-apps/{appId}/versions/{versionId} for that version's full detail

Security
apps_management_apiKey
Path
appIdstring, (uuid)required
Query
limitnumber
offsetnumber
app_namestring
app_typestring

Filter by app type. When TENANT_WINDOWS_EXE, response items include is_active.

is_activeboolean

Filter by active status. Only supported when app_type=TENANT_WINDOWS_EXE. Returns 400 if used with any other app_type.

legacy_formatboolean

If false, returns version_code instead of build_number. Defaults to true for backward compatibility.

Default:true
cURL
curl -i -X GET \
  'https://api.esper.io/_mock/openapi/v2/tenant-apps/{appId}/versions?limit=0&offset=0&app_name=string&app_type=string&is_active=true&legacy_format=true' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
contentobject
Response
{ "content": { "count": 0, "prev": "string", "next": "string", "results": [ … ] } }